1. Field of the Invention
The present invention pertains to Internet/Intranet systems. More particularly, this invention relates to a system and method for allowing access requests of a single session to be serviced by duplicate servers of a multi-server data service system.
2. Description of the Related Art
With the rapid growth of the Internet, more and more business and residential users are beginning to rely on the Internet for their mainstream and mission-critical activities. FIG. 1 illustratively shows one such configuration of the Internet. As can be seen from FIG. 1, the Internet 10 includes an Internet access gateway system 20 connected to a number of user access terminals 11a through 11n via an interconnect network 12. The user terminals 11a–11n can also be referred to as client systems. The gateway system 20 is connected to the global Internet 13, which is connected to a data service system 15. Here, the global Internet 13 is typically formed by a number of data service systems connected together via a high speed interconnect network. In addition, the gateway 20 itself may be a data service system.
Each of the user access terminals 11a–11n contains a browser software (i.e., 14–14n) that sends access requests to and receive responses from the gateway system 20. The browser (e.g., web browser or other software such as an e-mail software) allows its user (i.e., a person) to access the contents and/or applications hosted in various data service systems through the corresponding user terminal.
FIG. 2 shows a prior art structure of the data service system 15. As can be seen from FIG. 2, the data service system 15 includes a web server 23, an application server 24, and a database 25. The application server 24 is employed to perform a predetermined transaction or operation (e.g., e-commerce, workflow process, etc.). The database 25 serves to store data used by the application server 24 and/or the results generated by the application server 24. Each of the servers 23-24 can be accessed by multiple client systems at the same time. This means that the servers 23–24 can handle multiple access requests at the same time. During operation, a user accesses the web server 23 by generating at least one request from a corresponding user terminal. The web server 23 then decides whether the application server 24 needs to be called. If so, the web server 23 sends the request to the application server 24. If not, the web server 23 services the request.
To alleviate overload conditions on each of the servers 23–24 and to increase the performance of the data service system 15, a number of duplicate web servers 23a–23n and a number of duplicate application servers 24a–24n are provided in the system 15. Each of the web servers 23a–23n performs the same function as the web server 23. Each of the application servers 24a–24n performs the same function as the application server 24. A load-balancing router 26 is provided to route requests to one the web servers 23–23n. This balances load of each of the web servers and application servers. This also helps to prevent any individual server from being overloaded with requests.
However, disadvantages are still associated with this prior art approach. One disadvantage is the problem of session affinity of some access requests. A session (or user session) means a sequence of HTTP requests-responses that together constitute a session. For example, the user at a user terminal or client system might first log on to a on-line shopping site by providing a username and a password. The user might then browse the products listed, add some of them to her shopping cart, proceed to the “check-out counter” by clicking on the check-out button, buy the items in the shopping cart, and then log out.
Session affinity means that for some access sessions, handling of a request within a session by an application server depends on the information obtained from the handling of a previous request within the same access session. For example, the response to the request to generate the total cost of the items chosen for purchase depends on the state of the shopping cart. This type of access requests are typically referred to as inter-dependent access requests, and the information is typically referred to as session state information.
One prior solution to this session affinity problem is to employ a session ID that indicates to which user session the request belongs. The session ID is then stored as a cookie in the client browser that generated the first request of the session. In this case, all requests belonging to the same session contain the same session ID, and the session state information is stored in the application server that receives and processes the first request of the session. This means that for an access session that contains interdependent requests, once the first inter-dependent access request is processed by an application server, all subsequent interdependent access requests will have to be routed to and processed by the same application server because it contains the required session state information. This typically complicates the load balancing operation of the router (i.e., the router 26 of FIG. 2) because the router has to direct significant amount of traffic to a single server, thus overloading that server. If the overload condition only causes the server to be busy, the request will have to wait until the server is freed up to process it. If the overload condition causes the server to crash, the session has to start all over again, thus creating reliability problems.
Another prior solution to the session affinity problem is to require that the application server return the session state information to the requesting browser so that it can be attached to a subsequent interdependent access request. This is, however, a very costly and inefficient solution because the session state information is typically very large in size (e.g., 10 KBytes). This also means that the session state information will be transmitted twice between the application server and the requesting browser. This significantly increases the network traffic and reduces reliability.